<?php
class TriviaUtils {
	public static function loadPlayer(){
		$joueur=null;
		if (array_key_exists('joueur', $_SESSION)){
			$joueur=$_SESSION['joueur'];
		}
		return $joueur;
	}
	
	public static function deleteQuestions(){
		DAO::delete("*");
	}
	
	public static function uploadQuestions($fichier){
		$i=0;
		$j=0;
		$uQuestions = simplexml_load_file($fichier);
		foreach($uQuestions as $uQuestion){
			$question=new Question();
			$question->setJoueur(DAO::getOne("Joueur", $uQuestion->idjoueur));
			$question->setDomaine(DAO::getOne("Domaine",$uQuestion->iddomaine));			
			$question->setValidation($uQuestion->validation);			
			$question->setLibelle($uQuestion->libelle);
			if(DAO::insert($question)==1){
				$question->setId(DAO::$db->lastInsertId());
				foreach($uQuestion->reponses as $uReponse){
					$reponse=new Reponse();
					$reponse->setQuestion($question);
					$reponse->setLibelle($uReponse->libelle);
					$reponse->setIsTrue($uReponse->correct);
					if(DAO::insert($reponse)==1){
						echo 'La question "'.$question->getLibelle().'" a été uploadée correctemment.';
						$i++;
					}else{
						echo 'Impossible d\'inserer la réponse.';
					}
				}
			}else{
				echo "Impossible d\'inserer la question, vérifiez vos balises XML.";
			}
			$j++;
		}
		echo $i."/".$j." question(s) uploadée(s)";
	}
	
	public static function downloadQuestions(){
		$xml=new DOMDocument("1.0", "utf-8");
		$dQuestions=$xml->createElement("Questions");
		//$xml->appendChild($dQuestions);
		$questions=DAO::getAll("Question");
		foreach($questions as $question){
			$dQuestion=$xml->createElement("Question");			
			$dIdJoueur=$xml->createElement("idjoueur");
			$dIdJoueur->appendChild($xml->createTextNode($question->getIdJoueur));
			$xml->appendChild($dQuestion);
		}
	}
	
	public static function displayTimelapse($partie){
		date_default_timezone_set("Europe/Paris");
		$dernierCoup=new DateTime($partie->getDernierCoup());
		$heureMaximale=$dernierCoup->add(new DateInterval('P1D'));
		$heureActuelle=new DateTime("now");
		$difference=date_diff($heureMaximale, $heureActuelle);
		if($partie->getDernierCoup()!=null){
			if($heureActuelle<$heureMaximale){
				return $difference->format('%h heures %i minutes %s secondes');
			}else{
				$partie->setTermine(true);
				DAO::update($partie);
			}
		}else{
			return "En attente de lancement";
		}
	}
}